//http://poj.org/problem?id=1384
//背包dp恰好填满
//题意：一个存钱罐，能装的质量有限，告诉你现有钱的重量，价值，求出恰好装满的最小价值，不能装满输出不可能
//01背包恰好装满问题
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int x,y,tw;
        scanf("%d%d",&x,&y);
        tw=y-x;
        int n;
        scanf("%d",&n);
        int dp[10005],w[505],v[505];
        for(int i=1;i<=n;i++){
            scanf("%d%d",v+i,w+i);
        }
        for(int i=1;i<=tw;i++){
            dp[i]=(1<<30);//只让i为0是为合法状态
        }
        dp[0]=0;
        for(int i=1;i<=n;i++){
            for(int j=w[i];j<=tw;j++){
                dp[j]=min(dp[j],dp[j-w[i]]+v[i]);//维护最小值
            }
        }
        if(dp[tw]>=(1<<30)){
            printf("This is impossible.\n");
        }
        else{
            printf("The minimum amount of money in the piggy-bank is %d.\n",dp[tw]);
        }
    }
    return 0;
}